package com.tfjybj.itoo.teach.provider.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tfjybj.itoo.teach.entity.StaffEntity;
import com.tfjybj.itoo.teach.model.StaffModel;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * StaffDao接口
 * staff表
 *
 * @author 田成荣
 * @version 2.0.0
 * @since 2.0.0 2018-11-08 19:34:10
 */
@Repository("staffDao")
public interface StaffDao extends BaseMapper<StaffEntity> {

    //region 模板生成：模糊查询

    /**
     * 根据教师姓名模糊查询staff
     *
     * @param name 教师姓名
     * @return 模糊查询的staff集合
     * @author 田成荣
     * @since 2.0.0 2018-11-08 19:34:10
     */
    List<StaffModel> queryLikeName(@Param("name") String name);
    //endregion

    /* **********************************以下为非模板生成的内容********************************* */

    /**
     * 根据教师编码查询staff
     *
     * @param code 教师编码
     * @return staffModel
     * @author 张家豪
     * @since 2018.11.15 19:53
     */
    List<StaffModel> queryByCode(@Param("code") String code);


    /**
     * 根据学院ID查询本学院教师
     *
     * @param academy 学院ID
     * @return staffModel
     * @author 张家豪
     * @since 2018.11.18 14:09
     */
    List<StaffModel> queryStaffByAcademy(@Param("academy") String academy);

    /**
     * 查询所有教师信息（初始化页面）
     *
     * @return staffModel
     * @author 张家豪
     * @since 2018.11.22 17:07
     */
    List<StaffModel> queryAllStaff();

    /**
     * 根据教职工号或者机构Id查询staff
     *
     * @param code    教职工号
     * @param academy 机构名称
     * @return staffModel
     * @author 张家豪
     * @since 2018.11.22 20:23
     */
    List<StaffModel> queryStaffByCodeAndAcademy(@Param("code") String code, @Param("academy") String academy);

    /**
     * 根据多个机构查询staff
     *
     * @param academys 机构id集合
     * @return staffModel
     * @author 张家豪
     * @since 2018.11.24 20:43
     */
    List<StaffModel> queryByAcademys(@Param("academys") List<String> academys);

    /**
     * 查询所有教师信息-接口
     *
     * @return staffEntity
     * @author 张家豪
     * @since 2018.11.27 15:56
     */
    List<StaffEntity> queryAllStaffInfo(@Param("institutionId") String institutionId);


}
